home *** CD-ROM | disk | FTP | other *** search
- /*
- MCI.CPP
-
- Klasse fⁿr die Ansteuerung des MCI Interfaces.
-
- 22.08.92 Norbert Unterberg
-
- */
-
-
- #include <windows.h>
- #include <mmsystem.h>
-
- #include "mci.h"
-
-
- MCI_OPEN_PARMS *CDAudio::GetOpenParams()
- {
- MCI_OPEN_PARMS *mci = MCI::GetOpenParams();
-
- mci->lpstrDeviceType = "cdaudio";
- return mci;
- }
-
-
- DWORD CDAudio::GetOpenFlags(MCI_OPEN_PARMS *mci)
- {
- DWORD dwFlags = MCI::GetOpenFlags(mci);
-
- dwFlags |= MCI_OPEN_TYPE;
-
- return dwFlags;
- }
-
-
- MCI::MCI(HWND hwnd)
- {
- dwCallback = (DWORD)hwnd;
- szAlias = NULL;
- dwCallback = NULL;
- wDeviceID = 0;
- }
-
-
-
- MCI_OPEN_PARMS *MCI::GetOpenParams()
- {
- MCI_OPEN_PARMS *mci = new MCI_OPEN_PARMS;
-
- mci->dwCallback = dwCallback;
- mci->wReserved0 = 0;
- mci->lpstrDeviceType = NULL;
- mci->lpstrElementName = NULL;
- mci->lpstrAlias = szAlias;
- return mci;
- }
-
-
- DWORD MCI::GetOpenFlags(MCI_OPEN_PARMS *mci)
- {
- DWORD dwFlags = 0;
-
- if (mci->lpstrAlias)
- dwFlags |= MCI_OPEN_ALIAS;
-
- return dwFlags;
- }
-
-
- MCI_GENERIC_PARMS *MCI::GetGenericParams()
- {
- MCI_GENERIC_PARMS *mci = new MCI_GENERIC_PARMS;
-
- mci->dwCallback = dwCallback;
- return mci;
- }
-
-
- DWORD MCI::GetStatus(DWORD dwItem, DWORD dwTrack)
- {
- MCI_STATUS_PARMS mci;
- DWORD dwReturn;
- DWORD dwFlags;
-
- dwFlags = MCI_STATUS_ITEM | MCI_WAIT;
- if (dwTrack)
- dwFlags |= MCI_TRACK;
-
- mci.dwCallback = dwCallback;
- mci.dwItem = dwItem;
- mci.dwTrack = dwTrack;
- dwReturn = mciCommand(MCI_STATUS, dwFlags, &mci);
- if (dwReturn)
- return 0;
- else
- return mci.dwReturn;
- }
-
-
- DWORD MCI::Set(DWORD dwItem, DWORD dwValue)
- {
- MCI_SET_PARMS mci;
-
- mci.dwCallback = dwCallback;
- mci.dwTimeFormat = 0;
- mci.dwAudio = 0;
-
- if (dwItem == MCI_SET_AUDIO)
- mci.dwAudio = dwValue;
-
- if (dwItem == MCI_SET_TIME_FORMAT)
- mci.dwTimeFormat = dwValue;
-
- return mciCommand(MCI_SET, dwItem | MCI_WAIT, &mci);
- }
-
-
-
- DWORD MCI::Open(char *alias, DWORD dwFlags)
- {
- MCI_OPEN_PARMS *mci;
- DWORD dwResult;
-
- if (alias)
- szAlias = alias;
-
- mci = GetOpenParams();
-
- dwResult = mciCommand(MCI_OPEN, GetOpenFlags(mci) | dwFlags, mci);
- if (!dwResult)
- wDeviceID = mci->wDeviceID;
-
- DeleteOpenParams(mci);
- return dwResult;
- }
-
-
- DWORD MCI::Close(DWORD dwFlags)
- {
- if (!wDeviceID)
- return 0;
-
- return mciSendCommand(wDeviceID, MCI_CLOSE, dwFlags,
- (DWORD)(LPVOID)GetGenericParams());
- }
-
-
- DWORD MCI::Play(DWORD dwFlags, DWORD from, DWORD to)
- {
- MCI_PLAY_PARMS mci;
-
- if (!wDeviceID)
- return 0;
-
- mci.dwCallback = dwCallback;
- mci.dwFrom = from;
- mci.dwTo = to;
-
- return mciSendCommand(wDeviceID, MCI_PLAY, dwFlags,
- (DWORD)(LPVOID)&mci);
- }
-
-
- DWORD MCI::Stop(DWORD dwFlags)
- {
- if (!wDeviceID)
- return 0;
-
- return mciSendCommand(wDeviceID, MCI_STOP, dwFlags,
- (DWORD)(LPVOID)GetGenericParams());
- }
-
-
- DWORD MCI::Seek(DWORD dwFlags, DWORD to)
- {
- MCI_SEEK_PARMS mci;
-
- if (!wDeviceID)
- return 0;
-
- mci.dwCallback = dwCallback;
- mci.dwTo = to;
-
- return mciSendCommand(wDeviceID, MCI_SEEK, dwFlags,
- (DWORD)(LPVOID)&mci);
- }
-
-
-